import UIKit

@available(iOS 7.0, *)
extension QKC where AA :UICollisionBehavior {
    open func items_qk_g() -> QKC<AA,YY,ZZ, [UIDynamicItem] >{
		 self +^ self.value.items
	}

    open func collisionMode_qk_s(_ collisionMode:  UICollisionBehavior.Mode) -> QKC<AA,YY,ZZ, UICollisionBehavior.Mode>{
		return link(next: collisionMode).then_QK { $0.value.collisionMode = collisionMode }
	}
    open func collisionMode_qk_g() -> QKC<AA,YY,ZZ, UICollisionBehavior.Mode>{
		 self +^ self.value.collisionMode
	}

    open func translatesReferenceBoundsIntoBoundary_qk_s(_ translatesReferenceBoundsIntoBoundary:  Bool) -> QKC<AA,YY,ZZ, Bool>{
		return link(next: translatesReferenceBoundsIntoBoundary).then_QK { $0.value.translatesReferenceBoundsIntoBoundary = translatesReferenceBoundsIntoBoundary }
	}
    open func translatesReferenceBoundsIntoBoundary_qk_g() -> QKC<AA,YY,ZZ, Bool>{
		 self +^ self.value.translatesReferenceBoundsIntoBoundary
	}

    open func boundaryIdentifiers_qk_g() -> QKC<AA,YY,ZZ, [NSCopying]? >{
		 self +^ self.value.boundaryIdentifiers
	}

     open func collisionDelegate_qk_s(_ collisionDelegate:  UICollisionBehaviorDelegate?) -> QKC<AA,YY,ZZ, UICollisionBehaviorDelegate?>{
		return link(next: collisionDelegate).then_QK { $0.value.collisionDelegate = collisionDelegate }
	}
     open func collisionDelegate_qk_g() -> QKC<AA,YY,ZZ, UICollisionBehaviorDelegate?>{
		 self +^ self.value.collisionDelegate
	}

    open func addItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.addItem(item) +^ item
	}

    open func removeItem_qk_f(_ item: UIDynamicItem) -> QKC<AA,YY,ZZ, UIDynamicItem>{
		 self +^ self.value.removeItem(item) +^ item
	}

    open func setTranslatesReferenceBoundsIntoBoundary_qk_f(with insets: UIEdgeInsets) -> QKC<AA,YY,ZZ, UIEdgeInsets>{
		 self +^ self.value.setTranslatesReferenceBoundsIntoBoundary(with:insets) +^ insets
	}

    open func addBoundary_qk_f(withIdentifier identifier: NSCopying, for bezierPath: UIBezierPath) -> QKC<AA,YY,ZZ, NSCopying>{
		 self +^ self.value.addBoundary(withIdentifier:identifier, for:bezierPath) +^ identifier
	}

    open func addBoundary_qk_f(withIdentifier identifier: NSCopying, from p1: CGPoint, to p2: CGPoint) -> QKC<AA,YY,ZZ, NSCopying>{
		 self +^ self.value.addBoundary(withIdentifier:identifier, from:p1, to:p2) +^ identifier
	}

    open func boundary_qk_f(withIdentifier identifier: NSCopying) -> QKC<AA,YY,ZZ,UIBezierPath?>{
		 self +^ self.value.boundary(withIdentifier:identifier)
	}

    open func removeBoundary_qk_f(withIdentifier identifier: NSCopying) -> QKC<AA,YY,ZZ, NSCopying>{
		 self +^ self.value.removeBoundary(withIdentifier:identifier) +^ identifier
	}

    open func removeAllBoundaries_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.removeAllBoundaries()
	}

}

